home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs07.d81 / tankvol.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  136 lines

  1. 10 GOTO90
  2. 20 ************************************
  3. 30 ***        TANK VOLUME           ***
  4. 40 ************************************
  5. 50 ***       BY TIM TEMPLE          ***
  6. 60 ************************************
  7. 70 ***       PUBLIC DOMAIN          ***
  8. 80 ************************************
  9. 90 P$="[147][159]             TANK VOLUME [146]               "
  10. 100 PRINTP$"   THIS PROGRAM FINDS THE VOLUME OF LI- QUID IN A PARTIALLY ";
  11. 110 PRINT"FILLED TANK. JUST   TELL IT THE TYPE OF TANK, TANK DIMEN-   SIONS, ";
  12. 120 PRINT"THE TANK SOUNDING (FROM THE BOT- TOM), AND THIS PROGRAM WILL TELL ";
  13. 130 PRINT"YOU THE VOLUME IN IT.":PRINT"HIT ANY KEY TO GO ON.
  14. 140 [161]C$:[139]C$[178]""[167]140
  15. 150 [153]P$;"WHAT DOES THE TANK LOOK LIKE?"
  16. 160 [153]"F1WAIT-A BOX",,,,"F3WAIT-AN UPRIGHT CYLINDER"
  17. 170 [153]"F5WAIT-A CYLINDER ON ITS SIDE",,"F7WAIT-A SPHERE"
  18. 180 [153]"  HIT THE APPROPRIATE FUNCTION KEY"
  19. 190 [161]A$:[139]A$[177]"LET"[176]A$[179]"INPUT"[167]190
  20. 200 A%[178][198](A$)[171]132:[145]A%[141]210,230,250,270:[156]:[137]150
  21. 210 [143]        BOX MENU           * * *
  22. 220 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]320,290,340,550:[153]"LOAD"P$:[130]:[142]
  23. 230 [143]       UPRIGHT CYLINDER MENU * *
  24. 240 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]340,360,390,550:[153]"LOAD"P$:[130]:[142]
  25. 250 [143]       SIDE CYLINDER MENU  * * *
  26. 260 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]390,320,360,550:[153]"LOAD"P$:[130]:[142]
  27. 270 [143]       SPHERE MENU         * * *
  28. 280 [153]"LOAD"P$:[141]360:[141]550:[142]
  29. 290 [143]       INPUTS              * * *
  30. 300 [153]"WHAT IS THE TANK WIDTH (FEET & INCHES)?
  31. 310 INPUT"FEET";WF:INPUT"INCHES";WI:W=WF+WI/12:RETURN
  32. 320 PRINT"WHAT IS THE TANK LENGTH (FEET & INCHES)?
  33. 330 [133]"FEET";LF:[133]"INCHES";LI:L[178]LF[170]LI[173]12:[142]
  34. 340 [153]"WHAT IS THE TANK HEIGHT (FEET & INCHES)?
  35. 350 INPUT"FEET";HF:INPUT"INCHES";HI:H1=HF+HI/12:RETURN
  36. 360 PRINT"WHAT IS THE TANK DIAMETER               (FEET & INCHES)?
  37. 370 [133]"FEET";DF:[133]"INCHES";DI:D[178]DF[170]DI[173]12:R[178]D[173]2:[142]
  38. 380 [143]       CYLINDER END INPUTS * * *
  39. 390 [153]"WHAT DO THE ENDS OF THE TANK LOOK LIKE?"
  40. 400 [153]"F1WAIT-FLAT":[153]"F3WAIT-HEMISPHERIC":[153]"F5WAIT-SPHEROIDAL
  41. 410 PRINT"F7[146]-INVERTED SPHEROIDAL":PRINT"  HIT F2[146] FOR DEFINITIONS
  42. 420 [161]B$:[139]B$[179]"INPUT"[176]B$[177]"GOTO"[167]420
  43. 430 B%[178][198](B$)[171]132:[139]B%[178]5[167][137]460
  44. 440 [142]
  45. 450 [143]    *   DEFINITIONS   *
  46. 460 [153]P$;"  DEFINITIONS"
  47. 470 [153]"HEMISPHERIC - THE TANK LOOKS LIKE A     MEDICINE CAPSULE.
  48. 480 PRINT"SPHEROIDAL - THE ENDS ARE ROUNDED;      HALF-WAY BETWEEN FLAT AND ";
  49. 490 PRINT"HEMISPHERIC.
  50. 500 [153]"INVERTED SPHEROIDAL - THE ENDS ARE      DISHED INWARD, LIKE THE ";
  51. 510 [153]"BOTTOM OF A COKECAN.":[153]" HIT ANY KEY TO RETURN."
  52. 520 [161]C$:[139]C$[178]""[167]520
  53. 530 [137]390
  54. 540 [143]       MAIN LOOP           * * *
  55. 550 A$(1)[178]"A BOX":A$(2)[178]"AN UPRIGHT CYLINDER":A$(3)[178]"A CYLINDER ON ITS SIDE"
  56. 560 A$(4)[178]"A SPHERE":B$(1)[178]"FLAT":B$(2)[178]"HEMISPHERIC":B$(3)[178]"SPHEROIDAL"
  57. 570 B$(4)[178]"INVERTED "[170]B$(3)
  58. 580 [153]P$;"TYPE OF TANK="A$(A%)
  59. 590 [139]A%[178]2[176]A%[178]3[167][153]"TYPE OF END="B$(B%)
  60. 600 [153]"INSIDE MEASUREMENTS:"
  61. 610 [139]L[167][153]"LENGTH= "LF" FEET,"LI" INCHES"
  62. 620 [139]W[167][153]"WIDTH= "WF" FEET,"WI" INCHES"
  63. 630 [139]H1[167][153]"HEIGHT= "HF" FEET,"HI"INCHES"
  64. 640 [139]D[167][153]"DIAMETER= "DF" FEET,"DI"INCHES
  65. 650 PRINT"TYPE IN THE DEPTH OF THE LIQUID FROM THEBOTTOM TO THE SURFACE, ";
  66. 660 PRINT"IN INCHES ONLY."
  67. 670 PRINT" HIT F1[146] TO START OVER"
  68. 680 REM      SOUNDING INPUT       * * *
  69. 690 INPUT"DEPTH IN INCHES";S:GOTO710
  70. 700 INPUT"[145]";S$:S$=C$+S$:S=VAL(S$)
  71. 710 H=S/12:VOL=0
  72. 720 ONA%GOSUB780,810,980,1100:REM CALCULATION SUBROUTES
  73. 730 IFVOL>0THENGOSUB1130
  74. 740 PRINT"DEPTH?";:S$=""
  75. 750 C$="":GETC$:IFC$="[133]"THENRETURN
  76. 760 IFC$=""THEN750
  77. 770 PRINTC$:GOTO700
  78. 780 REM       BOX CALC            * * *
  79. 790 IFH<0ORH>H1THENPRINT"BE REASONABLE!":RETURN
  80. 800 VOL=L*W*H:RETURN
  81. 810 REM       UPRIGHT CYLINDER CALC * *
  82. 820 IFH=<0ORH>H1THENPRINT"BE REASONABLE!":RETURN
  83. 830 ONB%GOSUB840,930,870,900:RETURN
  84. 840 VOL=(null)*R*R*H:RETURN
  85. 850 VOL=(null)*4/3*H*H*(R*3/2-H):RETURN
  86. 860 REM
  87. 870 IF H<R/2 THENGOTO850
  88. 880 HS=H-R/2:VOL=(null)*R*R*R/3+(null)*R*R*HS:RETURN
  89. 890 REM
  90. 900 IF H<R/2 THENGOSUB850:K=VOL:GOSUB840:VOL=VOL-K:RETURN
  91. 910 VOL=(null)*R*R*H-(null)*R*R*R/3:RETURN
  92. 920 REM
  93. 930 H1=H1-D
  94. 940 IFH<=RTHENGOSUB1100:K=VOL
  95. 950 IFH<=R+H1ANDH>RTHENHS=H:H=R:GOSUB1100:K=VOL:H=HS-R:GOSUB840:VOL=K+VOL
  96. 960 IFH>R+H1THENHS=H:H=H-H1:GOSUB1100:K=VOL:H=H1:GOSUB840:VOL=K+VOL:H=HS
  97. 970 H1=H1+D:RETURN
  98. 980 REM       SIDE CYLINDER CALC * * *
  99. 990 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN
  100. 1000 ONB%GOSUB1010,1070,1080,1090:RETURN
  101. 1010 X=(R-H)/R:IF X=-1 THENX=X+.000001
  102. 1020 IF X=1 THENX=X-.000001
  103. 1030 M=2*(-ATN(X/SQR(1-X*X))+(null)/2)
  104. 1040 A=R*R*(M-SIN(M))/2:VOL=A*L
  105. 1050 RETURN
  106. 1060 REM
  107. 1070 GOSUB1100:K=VOL:GOSUB1010:VOL=K+VOL:RETURN
  108. 1080 GOSUB1100:K=VOL/2:GOSUB1010:VOL=K+VOL:RETURN
  109. 1090 GOSUB1100:K=-VOL/2:GOSUB1010:VOL=K+VOL:RETURN
  110. 1100 REM       SPHERE CALC        * * *
  111. 1110 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN
  112. 1120 VOL=(null)*H*H*(R-H/3):RETURN
  113. 1130 REM       CU. FT. TO GALLONS * * *
  114. 1140 VOL=VOL*7.481:D$="GALLONS"
  115. 1150 IFVOL<1THENVOL=VOL*4:D$="QUARTS"
  116. 1160 IFVOL<1THENVOL=VOL*2:D$="PINTS"
  117. 1170 IFVOL<1THENVOL=VOL*16:D$="OUNCES"
  118. 1180 VOL=INT(VOL*100+.5)/100
  119. 1190 PRINT"VOLUME ="VOL" "D$
  120. 1200 RETURN
  121. 1210 VARIABLES
  122. 1220 -----------------------------------
  123. 1230 A$,A%    TYPE OF TANK SELECTION
  124. 1240 WF,WI,W  WIDTH OF TANK
  125. 1250 LF,LI,L  LENGTH OF TANK
  126. 1260 HF,HI,H1 HEIGHT OF TANK
  127. 1270 DF,DI,D  DIAMETER OF TANK
  128. 1280 B$,B%    TYPE OF ENDS
  129. 1290 S,H,S$   DEPTH OF LIQUID
  130. 1300 VOL      VOLUME
  131. 1310 K        TEMP VOLUME
  132. 1320 HS       TEMP DEPTH
  133. 1330 X,A,C$   MISC
  134. 1340 P$       TITLE
  135. 1350 R        RADIUS OF TANK
  136.